package com.spdd.mt.biz.service.impl;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.spdd.mt.biz.entity.MtProductEntity;
import com.spdd.mt.biz.mapper.MtProductMapper;
import com.spdd.mt.biz.service.MtProductService;
import com.spdd.mt.common.base.impl.BaseServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * MtProduct 商品表  服务实现类
 * </p>
 *
 * @author shanfeilong
 * @since 2025-04-02
 */
@Slf4j
@Service
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class MtProductServiceImpl extends BaseServiceImpl<MtProductMapper, MtProductEntity> implements MtProductService {

    // private QueryWrapper<MtProductEntity> getWrapper(Map<String, Object> params) {
    //     QueryWrapper<MtProductEntity> wrapper = new QueryWrapper<>();
    //
    //     String id = (String) params.get("id");
    //     wrapper.lambda().eq(StrUtil.isNotBlank(id), MtProductEntity::getId, id);
    //
    //     List<Long> ids = (List<Long>) params.get("ids");
    //     wrapper.lambda().in(CollectionUtil.isNotEmpty(ids), MtProductEntity::getId, ids);
    //
    //     // wrapper.lambda().eq(MtProductEntity::getIsDelete, 0);
    //
    //     return wrapper;
    // }

    @Override
    public MtProductEntity getByMerchNoAndProductCode(String merchNo, String productCode) {
        if (StrUtil.isBlank(merchNo) || StrUtil.isBlank(productCode)) {
            return null;
        }

        MtProductEntity entity = getOne(new QueryWrapper<MtProductEntity>().lambda()
                .eq(MtProductEntity::getMerchNo, merchNo)
                .eq(MtProductEntity::getProductCode, productCode)
        );
        return entity;
    }

    @Override
    public List<MtProductEntity> listByMerchNoAndType(String merchNo, Integer type) {
        if (StrUtil.isBlank(merchNo)) {
            return null;
        }

        return list(new QueryWrapper<MtProductEntity>().lambda()
                .eq(MtProductEntity::getMerchNo, merchNo)
                .eq(MtProductEntity::getProductType, type)
        );
    }

    // @Override
    // public Page<MtProductVo> page(Map<String, Object> map) {
    //     Page<MtProductEntity> pageObj = this.getPage(map);
    //     Page<MtProductEntity> pageList = this.page(pageObj, getWrapper(map));
    //
    //     return convertTarget(pageList, MtProductVo.class);
    // }
    //
    // @Override
    // public List<MtProductVo> list(Map<String, Object> map) {
    //
    //     List<MtProductEntity> list = this.list(getWrapper(map));
    //
    //     return convertTarget(list, MtProductVo.class);
    // }
    //
    // @Override
    // public MtProductVo get(Long id) {
    //     if (id == null) {
    //         return null;
    //     }
    //     MtProductEntity entity = this.getById(id);
    //
    //     return convertTarget(entity, MtProductVo.class);
    // }
    //
    // @Override
    // @Transactional(rollbackFor = Exception.class)
    // public void save(MtProductVo dto) {
    //     MtProductEntity entity = ConvertUtils.sourceToTarget(dto, MtProductEntity.class);
    //
    //     dto.setId(null);
    //     this.save(entity);
    //
    //     dto.setId(entity.getId());
    // }
    //
    // @Override
    // @Transactional(rollbackFor = Exception.class)
    // public void update(MtProductVo dto) {
    //     if (dto.getId() == null) {
    //         throw new BaseException("主键为空");
    //     }
    //
    //     MtProductEntity entity = ConvertUtils.sourceToTarget(dto, MtProductEntity.class);
    //     this.updateById(entity);
    // }
}
